"""
    节点的编写流程：
        1.初始化rcl
        2.初始化节点对象
        3.spin循环阻塞
        4.销毁节点并关闭rcl
"""


import rclpy                                        # ROS2 Python接口库                                 
from rclpy.node import Node                         # ROS2 节点类
import time


class Hello_Node(Node):
    """
        创建一个HelloWorld节点, 初始化时输出日志
    """

    def __init__(self, name):
        super().__init__(name)                       # ROS2节点父类初始化
        while rclpy.ok():                            # ROS2系统是否正常运行
            self.get_logger().info("Hello czh!")     # ROS2日志输出
            time.sleep(0.5)                          # 休眠控制循环时间


def main(args=None):                                 # ROS2节点主入口main函数
    rclpy.init(args=args)                            # ROS2 Python接口初始化
    node = Hello_Node("node_helloworld")             # 创建ROS2节点对象并进行初始化
    rclpy.spin(node)                                 # 循环阻塞
    node.destroy_node()                              # 销毁节点对象
    rclpy.shutdown()                                 # 关闭ROS2 Python接口



# class Hello_Node(Node):
#     def __init__(self, name):
#         super().__init__(name)
#     def loop_hello(self, str):
#         while rclpy.ok():
#             self.get_logger().info(str)
#             time.sleep(1.0)


# def main(args=None):
#     rclpy.init(args=args)

#     hello_node = Hello_Node("node_hello")
#     hello_node.loop_hello("hello czh!")

#     hello_node.destroy_node()
#     rclpy.shutdown()

